package com.dwy2002.user.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.dwy2002.common.Result;
import com.dwy2002.pojo.dto.users.RoleDTO;
import com.dwy2002.pojo.po.users.Role;
import com.dwy2002.pojo.vo.users.RoleDetailVO;
import com.dwy2002.pojo.vo.users.RoleVO;

import java.util.List;

/**
 * @author 杜伟毅
 * @version 1.0
 * @since 2025/03/16
 */
public interface IRoleService extends IService<Role> {
    /**
     * 添加角色
     *
     * @param dto 角色DTO
     * @author 杜伟毅
     * @since 2025/3/16 0016 20:23
     */
    Result<Void> appendRole(RoleDTO dto);

    /**
     * 修改角色
     *
     * @param dto 角色DTO
     * @author 杜伟毅
     * @since 2025/3/16 0016 22:47
     */
    Result<Void> updateRole(RoleDTO dto);

    /**
     * 返回所有角色
     *
     * @author 杜伟毅
     * @since 2025/3/16 0016 23:26
     */
    Result<List<Role>> getRole();

    /**
     * 删除角色
     *
     * @param id 角色id
     * @author 杜伟毅
     * @since 2025/3/16 0016 23:38
     */
    Result<Void> removeRole(String id);

    /**
     * 获取用户的角色
     *
     * @param id 用户id
     * @return 用户的角色
     * @author 杜伟毅
     * @since 2025/5/12 0012 21:13
     */
    RoleVO getUserRole(String id);

    /**
     * 获取角色详情
     *
     * @param id 角色id
     * @author 杜伟毅
     * @since 2025/5/14 0014 23:39
     */
    Result<RoleDetailVO> getRoleDetail(String id);
}
